package com.myapp.jsf.controler;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.EJB;
import com.myapp.dao.UnidadHUsuarioDao;
import com.myapp.dao.UsuarioDao;
import com.myapp.entity.UnidadH;
import com.myapp.entity.Usuario;


public class LoginControler {

	@EJB
	private UsuarioDao usuarioDao;
	@EJB
	private UnidadHUsuarioDao unidadDao;

	private Usuario usuario;
	private Usuario usuarioTem;
	private String mensaje;
	private Map<String, Long> listUnidadesH;
	private Long idUnidadHabitacional;

	public LoginControler() {
		usuario = new Usuario();
		usuarioTem = new Usuario();
		listUnidadesH = new HashMap<String, Long>();
	}

	public Map<String, Long> getListUnidadesH() {
		return listUnidadesH;
	}

	public void setListUnidadesH(Map<String, Long> listUnidadesH) {
		this.listUnidadesH = listUnidadesH;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Usuario getUsuarioTem() {
		return usuarioTem;
	}

	public void setUsuarioTem(Usuario usuarioTem) {
		this.usuarioTem = usuarioTem;
	}

	public Long getIdUnidadHabitacional() {
		return idUnidadHabitacional;
	}

	public void setIdUnidadHabitacional(Long idUnidadHabitacional) {
		this.idUnidadHabitacional = idUnidadHabitacional;
	}

	public String validarUsuario() {
		usuarioTem = usuarioDao.autenticaUsuarioLDAP(usuario);
		String respuesta = "El usuario no es valido";
		setMensaje(respuesta);
		if (usuarioTem != null) {
			List<UnidadH> unidad = unidadDao.consultarUnidadUsuario(usuarioTem.getIdUsuario());
			if (unidad != null) {
			    for(UnidadH uh:unidad){
			    listUnidadesH.put(uh.getNombreUnidad(), uh.getIdUnidadH());
			    }
				idUnidadHabitacional = unidad.get(0).getIdUnidadH();				
			}
			respuesta = "true";
			setMensaje("");
		}
		return respuesta;
	}

	public String registro() {
		return "register";
	}

	public String validaSecionAutenticada(){		
		if(this.usuarioTem.getIdUsuario()!=null){
			return "adelante";
		}
		return "false";
	}
}
